package org.oslims.client.service;

import java.util.List;

import org.oslims.domain.Report;
import org.oslims.domain.Request;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface RequestServiceAsync {

	void getAllRequest(AsyncCallback<List<Request>> callback);

	void saveOrUpdateRequest(Request request, AsyncCallback<Void> callback);

	void releaseRequests(List<Request> requests, AsyncCallback<Void> callback);

	void closeRequests(List<Request> requests, AsyncCallback<Void> callback);

	void findByCode(String requestCode, AsyncCallback<Request> callback);

	void getAllRequest(int start, int length, String sortBy, boolean desc, AsyncCallback<List<Request>> callback);

	void getRequestCount(AsyncCallback<Integer> callback);

	void getRequestByState(String state, AsyncCallback<List<Request>> callback);

	void getReportsForRequest(Request request, AsyncCallback<List<Report>> callback);

	void deleteReport(Long reportId, AsyncCallback<Void> callback);

}
